Перейти к основному содержимому

1.22. Чаты

Всем

Чаты

В процессе работы, как при вступлении в команду, так и при сборе новой команды, происходит набор в группы в мессенджерах (чатах). Важно уметь их организовать, так как, если вы, допустим, важный специалист, вас могут добавлять в десятки групп, и нужно заботиться о порядке среди этого «массива». В настоящее время сложно подобрать достойную замену Telegram – он ушёл действительно далеко в своём удобстве и возможностях. Если раньше ещё звучали другие платформы, то сейчас уже мир меняется – Skype-эпоха ушла (Microsoft перешла в Teams), WhatsApp не развивался уже давно, а сотни аналогов не дарят чего-то уникального. Поэтому рекомендуется обучиться Telegram-возможностям, попробовать создать группу, изучить функционал. Но если в компании принята традиция работать в чём-то определённом – придётся привыкнуть.

Правила работы в чатах – важная часть:

  • треды – важно обсуждать одну тему в одной ветке;
  • форматирование – стараться использовать форматирование для наглядности – выделять жирным важные слова, код выделять в бэктиках или специальными тегами (`, к примеру);
  • уведомления – не нужно писать просто имя человека при обращении, важно его именно упомянуть, особенно если вопрос срочный – почти везде это делается как @username;
  • спам – важно не засорять чат лишней информации;
  • флуд – важно не провлять излишнюю активность большим количеством сообщений;
  • оффтоп – важно придерживаться темы разговора;
  • серьёзность – не рекомендуется отправлять мемы в чат, когда там обсуждают «упавший» сервер.

Главный мессенджер, с которым нужно научиться работать - Telegram. Здесь есть целая куча технологий - от разметки текста в сообщениях, до видеозвонков. Разработчикам важно знать основы для работы с ним, так как часто могут быть задачи по интеграции с мессенджером или созданием ботов.

Мессенджеры — это сложные системы, которые объединяют несколько технологий для обеспечения быстрой и безопасной передачи данных между адресатами.

Как устроены мессенджеры и как с ними работать?

  1. Регистрация и авторизация.

Большинство мессенджеров (например, Telegram, WhatsApp) используют номер телефона как уникальный идентификатор пользователя. После ввода номера телефон отправляет код подтверждения через SMS или звонок, и после успешной регистрации создается уникальный токен (ключ), который используется для авторизации на сервере. Этот токен хранится на устройстве пользователя и позволяет ему взаимодействовать с сервером без необходимости повторной авторизации.

  1. Обмен сообщениями. Система обмена сообщениями в мессенджерах строится на следующих принципах:
  • Протоколы передачи данных - WebSocket для постоянного соединения между клиентом и сервером, что позволяет серверу отправлять данные клиенту в реальном времени без необходимости постоянных запросов. HTTP(S) используется для API-запросов (например, отправка сообщений через ботов).
  • Шифрование. В мессенджерах, таких как WhatsApp и Signal, все сообщения шифруются на устройстве отправителя и расшифровываются только на устройстве получателя. Серверы не имеют доступа к содержимому сообщений - такая технология называется End-to-End Encryption (E2EE). Telegram использует собственный протокол шифрования MTProto для защиты данных.
  1. Хранение данных. Многие мессенджеры (например, Telegram) хранят историю сообщений на своих серверах. Это позволяет пользователям восстанавливать чаты на разных устройствах - благодаря облачному хранилищу. Некоторые мессенджеры (например, WhatsApp) хранят сообщения локально на устройстве пользователя.
  2. Уведомления. Когда приложение закрыто, уведомления доставляются через службу push-уведомлений (например, Firebase Cloud Messaging для Android или Apple Push Notification Service для iOS). Если приложение открыто, уведомления передаются через активное WebSocket-соединение.

image.png

Для звонков используется VoIP — это технология, которая позволяет передавать голосовые данные через интернет вместо традиционных телефонных линий.

API (Application Programming Interface) — это интерфейс, который позволяет сторонним программам взаимодействовать с мессенджером. Например, вы можете создать бота для автоматической отправки сообщений или интегрировать мессенджер с CRM-системой. Под «созданием бота» подразумевается разработка программы, которая будет отправлять запросы на сервер мессенджера, позволяя выполнять соответствующие функции.

Telegram предоставляет открытый API для создания ботов - Telegram Bot API. WhatsApp имеет закрытый API для бизнеса, с платной подпиской. И именно так создаются те самые «боты», которые могут как использоваться во благо (для корпоративных нужд, для выполнения удобных функций вроде поиска, агрегаций, вычислений или покупок с уведомлениями), так и для сбора данных о пользователях, взломов, или просто надоедливой рекламы. Существуют целые фермы ботов, которые включают в себя множество устройств, в реальном времени имитирующих работы пользователей и генерирующих одновременно тысячи сообщений.

Такие боты есть везде, и их миллиарды - от социальных сетей вроде Twitter (X), Facebook, Вконтакте - до мессенджеров. Это явление называют «мёртвый интернет».